#include "BloquesLibres.h"


BloquesLibres::~BloquesLibres() {
}


BloquesLibres::BloquesLibres(string nombrearchivo){
	this->nombrearchivo=nombrearchivo;
}


unsigned int BloquesLibres::obtenerBloqueLibre(unsigned int pos){
	return this->bloqueslibres[pos];
}


int BloquesLibres::obteneBloque(){
	if (vacio())
		return -1;
	else {
		unsigned int bloque = bloqueslibres[bloqueslibres.size()-1];
		bloqueslibres.pop_back();
		return bloque;
	}
}


void BloquesLibres::insertarBloque(unsigned int nrobloque){
	bloqueslibres.push_back(nrobloque);
}


bool BloquesLibres::vacio(){
	if (bloqueslibres.size()==0)return true;
	else return false;
}


void BloquesLibres::guardarBloques(){
	std::ofstream FILE(nombrearchivo.c_str(), std::ios::out | std::ofstream::binary);
	std::copy(bloqueslibres.begin(), bloqueslibres.end(), std::ostreambuf_iterator<char>(FILE));
}

void BloquesLibres::mostrar(){
	cout <<endl<<"[ ";
	for(unsigned int x=0; x<bloqueslibres.size(); x++) {
	cout <<bloqueslibres[x]<<"  ";
	}
	cout<<"]"<<endl;
 }
